package com.OtherExercises;

import java.util.ArrayList;

/**
 * Author:王天培
 */
public class 第22题 {//作为测试类

    public static void main(String[] args) {

        /*
       定义一个Avengers类
        1)属性: 编号id ( int类型 ) ，姓名name（String类型），性别sex （String类型）
       2)方法：空参满参构造 set、get方法
       */

        /*2.
        在测试类中创建6个对象（对象数据如下），依次将Avengers对象存入集合。
        1, "钢铁侠", "男"
        2, "美国队长", "男"
        3, "黑寡妇", "女"
        4, "绿巨人", "男"
        5, "雷神", "男"
        6, "星云", "女"
        */

        Avengers a1 = new Avengers(1, "钢铁侠", "男");
        Avengers a2 = new Avengers(2, "美国队长", "男");
        Avengers a3 = new Avengers(3, "黑寡妇", "女");
        Avengers a4 = new Avengers(4, "绿巨人", "男");
        Avengers a5 = new Avengers(5, "雷神", "男");
        Avengers a6 = new Avengers(6, "星云", "女");

        ArrayList<Avengers> list = new ArrayList<>();
        list.add(a1);
        list.add(a2);
        list.add(a3);
        list.add(a4);
        list.add(a5);
        list.add(a6);

        /*
        3. 遍历集合删除其中性别为男且姓名长度大于等于3的元素，将剩余的元素数据打印在控制台。打印如下：
        */

        System.out.println("------------------");
        for (int i = list.size() - 1; i >= 0; i--) {
            if (list.get(i).getSex().equals("男") && list.get(i).getName().length() >= 3) {
                Avengers temp = list.remove(i);//删除
                if (temp != null) {//判断是否成功
                    System.out.println("成功删除\"" + temp.getId() + "\"-\"" + temp.getName() + "\"-\"" + temp.getSex() + "\"");
                }
            }
        }
        System.out.println("------------------");
        System.out.println("使用重写toString函数实现:");
        System.out.println(list.toString());
        System.out.println("------------------");
        System.out.println("使用for循环遍历ArrayList手动实现:");
        for (int i = 0; i < list.size(); i++) {
            System.out.println("id:" + list.get(i).getId() +
                    "    性别:" + list.get(i).getSex() + "    姓名:" + list.get(i).getName());
        }

//运行结果:
//------------------
//成功删除"4"-"绿巨人"-"男"
//成功删除"2"-"美国队长"-"男"
//成功删除"1"-"钢铁侠"-"男"
//------------------
//使用重写toString函数实现:
//[id:3    性别:女    姓名:黑寡妇, id:5    性别:男    姓名:雷神, id:6    性别:女    姓名:星云]
//------------------
//使用for循环遍历ArrayList手动实现:
//id:3    性别:女    姓名:黑寡妇
//id:5    性别:男    姓名:雷神
//id:6    性别:女    姓名:星云


    }
}

/**
 * 复仇者类
 * <p>
 * 1)属性: 编号id ( int类型 ) ，姓名name（String类型），性别sex （String类型）
 * <p>
 * 2)方法：空参满参构造 set、get方法
 */
class Avengers {
    private int id;
    private String name;
    private String sex;

    /**
     * 重写toString函数,打印输出对象内容
     *
     * @return
     */
    @Override
    public String toString() {
        return "id:" + id +
                "    性别:" + sex + "    姓名:" + name;
    }

    /**
     * 空参构造
     */
    public Avengers() {
    }

    /**
     * 满参构造
     *
     * @param id
     * @param name
     * @param sex
     */
    public Avengers(int id, String name, String sex) {
        this.id = id;
        this.name = name;
        this.sex = sex;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}
